package com.example.shellshopping.goods;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.shellshopping.R;

import java.util.List;

/*
编写listview和gridview适配器的过程
1、创建一个类，继承baseAdapter
2、重写四个方法
3、在类中定义两个成员变量 context和集合
4、创建构造方法将两个成员变量赋值
5、前三个方法用套路写（固定写法）
6、创建内部类，在内部类当中声明item布局对应控件，并在构造方法当中查找，构造方法要传view
 */
public class TypeAdapter extends BaseAdapter {
    Context context;
    List<TypeBean.DataBean> data;
    int clickPos = 0;
    public TypeAdapter(Context context,List<TypeBean.DataBean> data) {
        this.context = context;
        this.data = data;
    }

    //设置被点击的位置
    public void setClickPos(int clickPos){
        this.clickPos = clickPos;
        notifyDataSetChanged();  //重新绘制页面
    }

    @Override
    public int getCount() {  //显示多少行数据，集合的长度
        return data.size();
    }

    @Override
    public Object getItem(int position) {  //返回指定位置的数据
        return data.get(position);
    }

    @Override
    public long getItemId(int position) {  //返回指定位置view的id
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {  //返回item_type布局对应的view对象
        VH vh = null;
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.item_type,parent,false);
            vh = new VH(convertView);
            convertView.setTag(vh);
        }else{
            vh = (VH)convertView.getTag();
        }
        TypeBean.DataBean bean = data.get(position);
        vh.tv.setText(bean.getName());
        //点击后，背景颜色，文字颜色，竖线的出现和隐藏
        if (position == clickPos) {
            //convertView.setBackgroundResource(R.color.gray);
            vh.tv.setTextColor(0xffff69b4);
            vh.tv.setTextSize(18);
            float lenth = vh.tv.getTextScaleX();
            vh.line.setText(vh.tv.getText()+"  ");
            vh.line.setVisibility(View.VISIBLE);
        }else{
            //convertView.setBackgroundResource(R.color.white);
            vh.tv.setTextColor(Color.GRAY);
            vh.line.setVisibility(View.INVISIBLE);
        }
        return convertView;
    }

    class VH{
        TextView tv,line;
        public  VH(View v){
            tv = v.findViewById(R.id.item_type_tv);
            line = v.findViewById(R.id.item_type_line);
        }
    }
}
